package com.yazi.mxz.common.service;

import com.myframework.smhj.common.exception.MyException;
import com.myframework.smhj.hibernate.dao.Service;
import com.yazi.mxz.common.entity.beans.Company;
import com.yazi.mxz.common.entity.beans.Spec;
import com.yazi.mxz.common.entity.beans.Store;

/**
 * Service接口：商品规格
 *
 * @author mo_yq5
 * @since 2016年6月2日
 */
public interface SpecService extends Service<Spec> {

	/**
	 * 企业添加或者编辑商品规格。<br>
	 * 指定了specTypeId则认为是编辑，否则认为是添加<br>
	 * 商品规格中指定的商品规格类型必须归属于指定企业的商品，否则抛出MyException
	 * @since 2016年6月3日
	 * @param company  企业（会话对象）
	 * @param spec 商品规格（表单对象）
	 * @return
	 * @throws MyException
	 */
	Spec addOrEditByCompany(Company company, Spec spec) throws MyException;

	/**
	 * 店铺添加或者编辑商品规格。<br>
	 * 指定了specTypeId则认为是编辑，否则认为是添加<br>
	 * 商品规格中指定的商品规格类型必须归属于指定店铺的商品，否则抛出MyException
	 * @since 2016年6月3日
	 * @param store 店铺（会话对象）
	 * @param spec 商品规格（表单对象）
	 * @return
	 * @throws MyException
	 */
	Spec addOrEditByStore(Store store, Spec spec) throws MyException;

}